import Mock from 'mockjs';

const Random = Mock.Random;

export const getUserInfo = (options) => {
	const template = {
		'str|2-4': 'Vivian', // 通过重复 string 生成一个字符串，重复次数大于等于 2，小于等于 4
		'name|5': 'Vivian', // 通过重复 string 生成一个字符串，重复次数等于 5
		'age|+2': 15, // 属性值自动加 2，初始值为 15
		'num|4-10': 0, // 生成一个大于等于 4、小于等于 10 的整数，属性值 number 只是用来确定类型
		'float|3-10.2-5': 0, // 生成一个浮点数，整数部分大于等于 3、小于等于 10，小数部分保留 2 到 5 位
		'bool|1': true, // 随机生成一个布尔值，值为 true 的概率是 1/2，值为 false 的概率同样是 1/2
		'bool2|1-9': true, // 随机生成一个布尔值，值为 value 的概率是 min / (min + max)，值为 !value 的概率是 max / (min + max)
		'obj|2': {a: 'aa', b: 'bb', c: 'cc'}, // 从属性值 object 中随机选取 2 个属性
		'obj2|1-2': {a: 'aa', b: 'bb', c: 'cc'}, // 从属性值 object 中随机选取 1 到 2 个属性
		'arr|2-4': [1, 2, 3], // 通过重复属性值 array 生成一个新数组，重复次数大于等于 2，小于等于 4
		'arr|2': ['a', 'b'],// 通过重复属性值 array 生成一个新数组，重复次数为 2
		'func': () => {
			return 'this is create by function' // 执行函数 function，取其返回值作为最终的属性值，函数的上下文为属性 'name' 所在的对象
		},
		'reg': /[1-9][a-z]/, // 根据正则表达式 regexp 反向生成可以匹配它的字符串。用于生成自定义格式的字符串
		email: Random.email, // 随机邮箱
		email2: Mock.mock('@email'), // 占位符，随机生成邮箱
		range: Random.range(3, 6, 1), // 范围从3-6，步进为1的一组数组
		date: Random.data('yyyy-MM-dd'), // 生成一个随机日期
		time: Random.time('hh:mm:ss'), // 生成一个随机事件
		datetime: Random.datetime('yyyy-MM-dd hh:mm:ss'),
		now: Random.now('hour', 'yyyy-MM-dd a hh:mm'), // 当前时间，hour表示截止到小时，yyyy-MM-dd hh:mm 时间格式
		img: Random.image('100x200', 'cyan', '#fff', 'png', 'ha'), // 尺寸，背景色，文字颜色，图片格式，显示在图片上的文字
		img2: Random.image(), // 生成随机图片
		img_base64: Random.dataImage(), // 返回一个 base64 图片格式的url
		color: Random.color(), // 随机颜色
		cword: Random.cword('根据填的文字', 2, 5), // 根据填的文字，随机选取 2到5个字
		cname: Random.cname(), // 随机中文名字
		region: Random.region(), // 地区
		province: Random.province(), // 省份
		city: Random.city(true), // 城市，true 表示 返回的样式为：省份 城市
		county: Random.county(true), // 县，true 表示 返回的样式为：省份 城市 区/县
		zip: Random.zip(), // 邮编
		upperFirstLetter: Random.capitalize('vivian'), // 首字母大写 -> Vivian
		pick: Random.pick([1, 2, 3]), // 从指定的数组中随机选取一个
		shuffle: Random.shuffle([1, 2, 3]), // 把指定的数组里的数随机打乱
		guid: Random.guid(), // 随机生成一串guid
		fruit: Random.fruit(),
		fruit2: '@fruit'
	};
	return Mock.mock(template);
};

export const login = () => {
	return {
		code: 200,
		data: {
			token: 'xxx'
		},
		mes: ''
	}
};

export const authorization = () => {
	return {
		code: 200,
		data: {
			token: 'xxx',
			rules: {
				// 页面访问权限，true为可以访问
				page: {
					home: true,
					home_index: true,
					about: true,
					argu: true,
					count_to: true,
					menu_page: true,
					upload: true,
					form: true,
					dynamic_form: true,
					folder_tree: true,
					table: true,
					params: true,
					component: true,
					render_page: true,
					split_pane: true,
					parent: true,
					child: true,
					named_view: true,
					store: true,
					main: true,
					optimize: true
				},
				// 组件级别权限，true组件显示
				component: {
					edit_button: true,
					publish_button: false
				}
			}
		},
		mes: ''
	}
};
